package com.smartleanx.module.hrm.service.employee;

import javax.validation.*;

import com.smartleanx.module.hrm.controller.admin.employee.certificate.EmployeeCertificateSaveReqVO;
import com.smartleanx.module.hrm.dal.dataobject.employee.EmployeeCertificateDO;
import com.smartleanx.framework.common.pojo.PageResult;

import java.util.List;

/**
 * 员工证书 Service 接口
 *
 * @author 精益大师
 */
public interface EmployeeCertificateService {

    /**
     * 创建员工证书
     *
     * @param createReqVO 创建信息
     * @return 编号
     */
    Long createEmployeeCertificate(@Valid EmployeeCertificateSaveReqVO createReqVO);

    /**
     * 更新员工证书
     *
     * @param updateReqVO 更新信息
     */
    void updateEmployeeCertificate(@Valid EmployeeCertificateSaveReqVO updateReqVO);

    /**
     * 删除员工证书
     *
     * @param id 编号
     */
    void deleteEmployeeCertificate(Long id);

    /**
     * 获得员工证书
     *
     * @param id 编号
     * @return 员工证书
     */
    EmployeeCertificateDO getEmployeeCertificate(Long id);

    /**
     * 获取员工证书列表
     *
     * @param employeeId
     * @return
     */
    List<EmployeeCertificateDO> getEmployeeCertificateList(Long employeeId);

    /**
     * 根据员工id删除证书
     * @param employeeId 员工id
     */
    void deleteByEmployeeId(Long employeeId);
}
